#include "uv.h"

typedef struct uv_struct_info_s {
    char* name;
    int  size;
} uv_struct_info ;

UV_EXTERN void* get_uv_struct_info(){
    static uv_struct_info uv_struct_info_list[ 64 ] = {
	{"UV_HANDLE_TYPE_PRIVATE__", sizeof(struct UV_HANDLE_TYPE_PRIVATE__)},
	{"UV_REQ_TYPE_PRIVATE__", sizeof(struct UV_REQ_TYPE_PRIVATE__)},
	{"UV_REQ_PRIVATE_FIELDS__", sizeof(struct UV_REQ_PRIVATE_FIELDS__)},
	{"UV_STREAM_PRIVATE_FIELDS__", sizeof(struct UV_STREAM_PRIVATE_FIELDS__)},
	{"UV_TCP_PRIVATE_FIELDS__", sizeof(struct UV_TCP_PRIVATE_FIELDS__)},
	{"UV_PREPARE_PRIVATE_FIELDS__", sizeof(struct UV_PREPARE_PRIVATE_FIELDS__)},
	{"UV_CHECK_PRIVATE_FIELDS__", sizeof(struct UV_CHECK_PRIVATE_FIELDS__)},
	{"UV_IDLE_PRIVATE_FIELDS__", sizeof(struct UV_IDLE_PRIVATE_FIELDS__)},
	{"UV_ASYNC_PRIVATE_FIELDS__", sizeof(struct UV_ASYNC_PRIVATE_FIELDS__)},
	{"UV_TIMER_PRIVATE_FIELDS__", sizeof(struct UV_TIMER_PRIVATE_FIELDS__)},
	{"UV_GETADDRINFO_PRIVATE_FIELDS__", sizeof(struct UV_GETADDRINFO_PRIVATE_FIELDS__)},
	{"UV_FS_REQ_PRIVATE_FIELDS__", sizeof(struct UV_FS_REQ_PRIVATE_FIELDS__)},
	{"UV_WORK_PRIVATE_FIELDS__", sizeof(struct UV_WORK_PRIVATE_FIELDS__)},
	{"UV_FS_EVENT_PRIVATE_FIELDS__", sizeof(struct UV_FS_EVENT_PRIVATE_FIELDS__)},
	{"UV_SIGNAL_PRIVATE_FIELDS__", sizeof(struct UV_SIGNAL_PRIVATE_FIELDS__)},
	{"UV_LOOP_PRIVATE_FIELDS__", sizeof(struct UV_LOOP_PRIVATE_FIELDS__)},
	{"UV_LOOP_PRIVATE_PLATFORM_FIELDS__", sizeof(struct UV_LOOP_PRIVATE_PLATFORM_FIELDS__)},
	{"uv_loop_s", sizeof(struct uv_loop_s)},
	{"uv_err_s", sizeof(struct uv_err_s)},
	{"uv_handle_s", sizeof(struct uv_handle_s)},
	{"uv_stream_s", sizeof(struct uv_stream_s)},
	{"uv_tcp_s", sizeof(struct uv_tcp_s)},
	{"uv_udp_s", sizeof(struct uv_udp_s)},
	{"uv_pipe_s", sizeof(struct uv_pipe_s)},
	{"uv_tty_s", sizeof(struct uv_tty_s)},
	{"uv_poll_s", sizeof(struct uv_poll_s)},
	{"uv_timer_s", sizeof(struct uv_timer_s)},
	{"uv_prepare_s", sizeof(struct uv_prepare_s)},
	{"uv_check_s", sizeof(struct uv_check_s)},
	{"uv_idle_s", sizeof(struct uv_idle_s)},
	{"uv_async_s", sizeof(struct uv_async_s)},
	{"uv_process_s", sizeof(struct uv_process_s)},
	{"uv_fs_event_s", sizeof(struct uv_fs_event_s)},
	{"uv_fs_poll_s", sizeof(struct uv_fs_poll_s)},
	{"uv_signal_s", sizeof(struct uv_signal_s)},
	{"uv_req_s", sizeof(struct uv_req_s)},
	{"uv_getaddrinfo_s", sizeof(struct uv_getaddrinfo_s)},
	{"uv_shutdown_s", sizeof(struct uv_shutdown_s)},
	{"uv_write_s", sizeof(struct uv_write_s)},
	{"uv_connect_s", sizeof(struct uv_connect_s)},
	{"uv_udp_send_s", sizeof(struct uv_udp_send_s)},
	{"uv_fs_s", sizeof(struct uv_fs_s)},
	{"uv_work_s", sizeof(struct uv_work_s)},
	{"uv_cpu_info_s", sizeof(struct uv_cpu_info_s)},
	{"uv_interface_address_s", sizeof(struct uv_interface_address_s)},
	{"addrinfo", sizeof(struct addrinfo)},
	{"sockaddr_in", sizeof(struct sockaddr_in)},
	{"sockaddr_in6", sizeof(struct sockaddr_in6)},
	{"sockaddr", sizeof(struct sockaddr)},
	{"uv_stdio_container_s", sizeof(struct uv_stdio_container_s)},
	{"uv_process_options_s", sizeof(struct uv_process_options_s)},
	{"uv_cpu_times_s", sizeof(struct uv_cpu_times_s)},
	{"_AFD_POLL_HANDLE_INFO", sizeof(struct _AFD_POLL_HANDLE_INFO)},
	{"_AFD_POLL_INFO", sizeof(struct _AFD_POLL_INFO)},
	{"uv_buf_t", sizeof(struct uv_buf_t)},
	{"uv_once_s", sizeof(struct uv_once_s)},
	{"uv_timer_tree_s", sizeof(struct uv_timer_tree_s)},
	{"uv_pipe_accept_s", sizeof(struct uv_pipe_accept_s)},
	{"uv_tcp_accept_s", sizeof(struct uv_tcp_accept_s)},
	{"sockaddr_storage", sizeof(struct sockaddr_storage)},
	{"uv_read_s", sizeof(struct uv_read_s)},
	{"addrinfoW", sizeof(struct addrinfoW)},
	{"uv_process_exit_s", sizeof(struct uv_process_exit_s)},
	{"uv_fs_event_req_s", sizeof(struct uv_fs_event_req_s)},
    };
	static uv_struct_info list  = { NULL, 64 };
	list.name = (char*) uv_struct_info_list ;
	return  & list ; 
}